package com.lb.activity.service;

import com.lb.activity.po.Role;
import com.lb.activity.util.PermissionTree;
import com.lb.activity.util.ResultUtil;
import com.lb.activity.vo.RoleVo;

public interface RoleService {

    /**
     * list
     * @param roleVo
     * @return
     */
    ResultUtil list(RoleVo roleVo);

    /**
     * 添加
     * @param role
     * @return
     */
    ResultUtil add(Role role);

    /**
     * 更新
     * @param role
     * @return
     */
    ResultUtil update(Role role);

    /**
     * 删除
     * @param id
     * @return
     */
    ResultUtil delete(Long id);

    /**
     * 获取角色
     * @param id
     * @return
     */
    Role getOne(Long id);

    /**
     * 修改角色的状态
     * @param id
     * @param boolStatus
     * @return
     */
    ResultUtil changeStatus(Long id, boolean boolStatus);

    /**
     * 获取角色树
     * @param userId
     * @return
     */
    PermissionTree<Role> getRoleTree(Long userId);

    /**
     * 分配用户角色
     * @param id  用户Id
     * @param roleIds  角色的IDs
     */
    void modifyUserRoles(Long id, String[] roleIds);
}
